<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>xilplmi: xplmi_proc.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">xilplmi
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;"
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('xplmi__proc_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">xplmi_proc.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>This file contains the processor related code. </p>
<pre>
MODIFICATION HISTORY:</pre><pre>Ver   Who  Date        Changes
</p>
<hr/>
<p>
1.00  kc   02/07/2019 Initial release
1.01  kc   04/09/2019 Added code to register/enable/disable interrupts
      sn   07/04/2019 Added support for enabling GIC proxy for sysmon
      kc   07/16/2019 Added PERF macro to print task times
      kc   07/16/2019 Added logic to determine the IRO frequency
      kc   08/01/2019 Added PLM and ROM boot times
1.02  kc   02/10/2020 Updated scheduler to add/remove tasks
      ma   02/28/2020 Added support for new error actions
      kc   03/20/2020 Scheduler frequency is increased to 100ms for QEMU
      bsv  04/04/2020 Code clean up
      kc   04/23/2020 Added interrupt support for SEU event
1.03  bm   10/14/2020 Code clean up
      td   10/19/2020 MISRA C Fixes
1.04  td   11/23/2020 MISRA C Rule 10.4 Fixes
      ma   03/24/2021 Reduced minimum digits of time stamp decimals to 3
      skd  03/25/2021 Compilation warning fix
      bm   04/03/2021 Move task creation out of interrupt context
1.05  td   07/08/2021 Fix doxygen warnings
      bm   07/12/2021 Updated IRO frequency to 400MHz for MP and HP parts
      bsv  07/16/2021 Fix doxygen warnings
      bsv  08/02/2021 Code clean up to reduce size
      bsv  08/15/2021 Removed unwanted goto statements
1.06  ma   01/17/2022 Move EFUSE defines to xplmi_hw.h file
      bm   01/27/2022 Fix setup interrupt system logic
      rama 01/31/2022 Added STL error interrupt register functionality
      bm   03/16/2022 Fix ROM time calculation
1.07  skd  04/21/2022 Misra-C violation Rule 18.1 fixed
1.08  bm   07/06/2022 Refactor versal and versal_net code
1.09  ng   11/11/2022 Updated doxygen comments
      bm   01/03/2023 Remove usage of double data type
      bm   03/11/2023 Set PmcIroFreq as 320MHz by default
      ng   03/30/2023 Updated algorithm and return values in doxygen comments
1.10  bm   04/28/2023 Use XPlmi_GetRomIroFreq API to get IRO frequency used
                      during ROM
      ng   06/21/2023 Added support for system device-tree flow
      ng   01/28/2024 optimized u8 variables
      ma   03/05/2024 Fixed improper timestamp issue after In-place PLM update
      ma   09/20/2024 Increase scheduler frequency to 100ms for COSIM</pre><pre></pre> </div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga174c4697a5d6684da653761b5fcdc0c6"><td class="memItemLeft" align="right" valign="top">u32 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilplmi__server__apis.html#ga174c4697a5d6684da653761b5fcdc0c6">XPlmi_GetPmcIroFreq</a> (void)</td></tr>
<tr class="memdesc:ga174c4697a5d6684da653761b5fcdc0c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function provides the pointer to PmcIroFreq variable.  <a href="group__xilplmi__server__apis.html#ga174c4697a5d6684da653761b5fcdc0c6">More...</a><br/></td></tr>
<tr class="separator:ga174c4697a5d6684da653761b5fcdc0c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6434f3174d49ba6aac80cdac0f22f8df"><td class="memItemLeft" align="right" valign="top">u64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilplmi__server__apis.html#ga6434f3174d49ba6aac80cdac0f22f8df">XPlmi_GetTimerValue</a> (void)</td></tr>
<tr class="memdesc:ga6434f3174d49ba6aac80cdac0f22f8df"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to read the 64 bit timer value.  <a href="group__xilplmi__server__apis.html#ga6434f3174d49ba6aac80cdac0f22f8df">More...</a><br/></td></tr>
<tr class="separator:ga6434f3174d49ba6aac80cdac0f22f8df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8073ed79bd5fcddf3ac6313fb0d905da"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilplmi__server__apis.html#ga8073ed79bd5fcddf3ac6313fb0d905da">XPlmi_MeasurePerfTime</a> (u64 TCur, XPlmi_PerfTime *PerfTime)</td></tr>
<tr class="memdesc:ga8073ed79bd5fcddf3ac6313fb0d905da"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function measures the total time taken between two points for performance measurement.  <a href="group__xilplmi__server__apis.html#ga8073ed79bd5fcddf3ac6313fb0d905da">More...</a><br/></td></tr>
<tr class="separator:ga8073ed79bd5fcddf3ac6313fb0d905da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf8b4f2b936edc4e2060961f9bbcb0ff3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilplmi__server__apis.html#gaf8b4f2b936edc4e2060961f9bbcb0ff3">XPlmi_PrintRomTime</a> (void)</td></tr>
<tr class="memdesc:gaf8b4f2b936edc4e2060961f9bbcb0ff3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function prints the ROM time.  <a href="group__xilplmi__server__apis.html#gaf8b4f2b936edc4e2060961f9bbcb0ff3">More...</a><br/></td></tr>
<tr class="separator:gaf8b4f2b936edc4e2060961f9bbcb0ff3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga161d819b7e4971a43da00b9c8d3ddc6a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilplmi__server__apis.html#ga161d819b7e4971a43da00b9c8d3ddc6a">XPlmi_PrintPlmTimeStamp</a> (void)</td></tr>
<tr class="memdesc:ga161d819b7e4971a43da00b9c8d3ddc6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function prints the PLM time stamp.  <a href="group__xilplmi__server__apis.html#ga161d819b7e4971a43da00b9c8d3ddc6a">More...</a><br/></td></tr>
<tr class="separator:ga161d819b7e4971a43da00b9c8d3ddc6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1faf13fb43ee71846b7ec8c5f22b986e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilplmi__server__apis.html#ga1faf13fb43ee71846b7ec8c5f22b986e">XPlmi_StartTimer</a> (void)</td></tr>
<tr class="memdesc:ga1faf13fb43ee71846b7ec8c5f22b986e"><td class="mdescLeft">&#160;</td><td class="mdescRight">It initializes the IO module structures and PIT timers.  <a href="group__xilplmi__server__apis.html#ga1faf13fb43ee71846b7ec8c5f22b986e">More...</a><br/></td></tr>
<tr class="separator:ga1faf13fb43ee71846b7ec8c5f22b986e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga39991f4765e9e7323223ec6288ab40a3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilplmi__server__apis.html#ga39991f4765e9e7323223ec6288ab40a3">XPlmi_SetUpInterruptSystem</a> (void)</td></tr>
<tr class="memdesc:ga39991f4765e9e7323223ec6288ab40a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function connects the interrupt handler of the IO Module to the processor.  <a href="group__xilplmi__server__apis.html#ga39991f4765e9e7323223ec6288ab40a3">More...</a><br/></td></tr>
<tr class="separator:ga39991f4765e9e7323223ec6288ab40a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga28492cdcffc2121602ae8bf7df733294"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilplmi__server__apis.html#ga28492cdcffc2121602ae8bf7df733294">XPlmi_IntrHandler</a> (void *CallbackRef)</td></tr>
<tr class="memdesc:ga28492cdcffc2121602ae8bf7df733294"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is default interrupt handler for the device.  <a href="group__xilplmi__server__apis.html#ga28492cdcffc2121602ae8bf7df733294">More...</a><br/></td></tr>
<tr class="separator:ga28492cdcffc2121602ae8bf7df733294"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae14df54ed318152d61bbb0edb8998dc3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilplmi__server__apis.html#gae14df54ed318152d61bbb0edb8998dc3">XPlmi_PlmIntrEnable</a> (u32 IntrId)</td></tr>
<tr class="memdesc:gae14df54ed318152d61bbb0edb8998dc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function will enable the Iomodule interrupt.  <a href="group__xilplmi__server__apis.html#gae14df54ed318152d61bbb0edb8998dc3">More...</a><br/></td></tr>
<tr class="separator:gae14df54ed318152d61bbb0edb8998dc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9b50989f370478d03d3dea18f7b8cd13"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilplmi__server__apis.html#ga9b50989f370478d03d3dea18f7b8cd13">XPlmi_PlmIntrDisable</a> (u32 IntrId)</td></tr>
<tr class="memdesc:ga9b50989f370478d03d3dea18f7b8cd13"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function will disable the Iomodule interrupt.  <a href="group__xilplmi__server__apis.html#ga9b50989f370478d03d3dea18f7b8cd13">More...</a><br/></td></tr>
<tr class="separator:ga9b50989f370478d03d3dea18f7b8cd13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7afb3d630cbe8ab2e65abde74817eb55"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilplmi__server__apis.html#ga7afb3d630cbe8ab2e65abde74817eb55">XPlmi_PlmIntrClear</a> (u32 IntrId)</td></tr>
<tr class="memdesc:ga7afb3d630cbe8ab2e65abde74817eb55"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function will clear the Iomodule interrupt.  <a href="group__xilplmi__server__apis.html#ga7afb3d630cbe8ab2e65abde74817eb55">More...</a><br/></td></tr>
<tr class="separator:ga7afb3d630cbe8ab2e65abde74817eb55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae4d39d395ef91b45f9cbdc1c1c03d289"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xilplmi__server__apis.html#gae4d39d395ef91b45f9cbdc1c1c03d289">XPlmi_RegisterHandler</a> (u32 IntrId, GicIntHandler_t Handler, void *Data)</td></tr>
<tr class="memdesc:gae4d39d395ef91b45f9cbdc1c1c03d289"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function will register the handler and enable the Iomodule interrupt.  <a href="group__xilplmi__server__apis.html#gae4d39d395ef91b45f9cbdc1c1c03d289">More...</a><br/></td></tr>
<tr class="separator:gae4d39d395ef91b45f9cbdc1c1c03d289"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
